約 5,197,936 件
https://w.atwiki.jp/bastard/pages/5.html
共通で使用する画像のアップロード専用ページ
https://w.atwiki.jp/amslracing/pages/22.html
Image Processing Image Processing は画像処理について語るページです. 画像処理の基礎や本研究室で使用するOpenCVの使い方などのコンテンツを予定しています. Contents Image Processing 初級編Lesson 1 What's Image Processing ? Lesson 2 実際に画像処理をしよう 初級編 Lesson 1 What s Image Processing ? Image Processingとは日本語で言えば画像処理です. 画像処理とは,その名の通り,(デジタル)画像データに処理を施し,様々な目的に利用することです. しかし,一言に画像処理といっても,様々な意味を持ってきます.その中でも,CVとRVの2つの言葉を忘れないで下さい. ごくごく簡単に言うと,CVとは,コンピュータ・ビジョンのことであり,単純にデジタル画像データを処理するだけです. 一方でRVとは,ロボット・ビジョンのことであり,ロボットにCVを利用する上で様々な拘束条件が必要になります. 本研究室は,ロボット工学研究室であり,基本的に終着点はロボットへの実装です.なので,このRVが非常に重要なのです.(*1) Lesson 2 実際に画像処理をしよう 本研究室では,画像処理ライブラリOpenCVを使います. OpenCVのページへ.
https://w.atwiki.jp/lmes2/pages/228.html
ASP.NET AJAX 1.0(Atlas)のインストール 概要 タイトルのまんま。 参考 @IT総合トップ / テクノロジー / Insider.NET / 特集 / ASP.NET AJAX ファーストルック 前提条件 なし。 手順 AJAX The Official Microsoft ASP.NET Site から、「ASP.NET 2.0 AJAX Extensions 1.0」(ASPAJAXExtSetup.msi)をDLして実行。 not found (6.jpg) not found (7.jpg) not found (8.jpg) not found (9.jpg)
https://w.atwiki.jp/riie/pages/25.html
画像置き場
https://w.atwiki.jp/hunsaironri/pages/39.html
画像アップロード用ページ 「編集」>「このページにファイルをアップロード」からアップロードしてください。 あく いわ かくとう くさ こおり じめん でんき どく はがね ひこう ほのお みず むし エスパー ゴースト ドラゴン ノーマル フェアリー
https://w.atwiki.jp/chugoku/pages/158.html
// 概要 ジャンケンの判定 // File Name rockpaperscissors.cpp // Library OpenCV for MS-Windows 1.0 //--------------------------------------------------------- #include "rockpaperscissors.h" #include windows.h #include "random.h" #define syoki_point 8 void Ellipse(IplImage * sabunn_img); char windowNameCapture[] = "Capture"; // キャプチャした画像を表示するウィンドウの名前 char windowNameSkin[] = "Skin";// 肌色抽出画像を表示するウィンドウの名前 char windowNameConvexHull[] = "ConvexHull"; // ConnvexHull画像を表示するウィンドウの名前 char windowNamejannkenn[]="jannkenn";//ジャンケン画像を表示するウィンドウの名前 char windowNameTrack[] = "Track";// トラックバーの表示 char windowNameFit[] = "Fit"; int hullarea;// ConvexHull内の面積 int handarea;// 手領域の面積 int send_janken=0; int janken_type = 0; IplImage *frameImage = 0; //最低限、ウィンドウに表示するイメージ // モルフォロジー IplImage *dst_img_subunn = 0; // ellipseの処理用 IplImage *dst_img = 0; // 矩形の枠の個数を格納するもの int kukei_count = 0; // 指の個数をカウント int yubi_count = 0; //初期化までのカウント int syoki_count = syoki_point; // 画像を生成する IplImage *hsvImage;// HSV画像用IplImage IplImage *convexHullImage;// ConvexHull画像用IplImage IplImage *skinImage;// 肌色抽出画像用IplImage IplImage *temp;// 一時保存用IplImage IplImage *label;// ラベル結果保存用IplImage IplImage *J_goo; IplImage *J_tyoki; IplImage *J_par; IplImage *J_syoki; int count = 1; int hmax, hmin, smax, smin, vmax, vmin;//h 色相 s 色彩 v 明度 static int rockmax = 100, rockmin = 80, scissormax = 80, scissormin = 70, papermax = 70, papermin = 50; //グー最大、グー最小,チョキ最大、チョキ最小,パー最大、パー最小の並び char filename[1000]; char *path = "C \\Documents and Settings\\Administrator\\My Documents\\My Pictures\\frame"; double ireko[10][2]; // // ウィンドウを作成する // void createWindows() { cvNamedWindow(windowNameCapture); cvNamedWindow(windowNameSkin); cvNamedWindow(windowNameConvexHull); cvNamedWindow(windowNameTrack); cvNamedWindow(windowNameFit); cvNamedWindow(windowNamejannkenn); } // // 画像を読み込む // void loadImage() { J_goo = cvLoadImage ("goo.jpg", CV_LOAD_IMAGE_COLOR ); J_tyoki = cvLoadImage ("tyoki.jpg", CV_LOAD_IMAGE_COLOR ); J_par = cvLoadImage ("par.jpg", CV_LOAD_IMAGE_COLOR ); J_syoki = cvLoadImage ("syoki.jpg", CV_LOAD_IMAGE_COLOR ); } // // 肌色を抽出する // // 引数 // frameImage キャプチャした画像用IplImage // hsvImage HSV画像用IplImage // skinImage 肌色抽出画像用IplImage // void extractSkinColor(IplImage * frameImage, IplImage * hsvImage, IplImage * skinImage) { CvScalar color;// HSV表色系で表した色 unsigned char h;// H成分 unsigned char s;// S成分 unsigned char v;// V成分 // BGRからHSVに変換する cvCvtColor(frameImage, hsvImage, CV_BGR2HSV); //肌色抽出 for (int x = 0; x skinImage- width; x++) { for (int y = 0; y skinImage- height; y++) { color = cvGet2D(hsvImage, y, x); h = color.val[0]; s = color.val[1]; v = color.val[2]; if (h = hmax h = hmin s = smax s = smin v = vmax v = vmin) { // 肌色の場合 cvSetReal2D(skinImage, y, x, 255); } else { cvSetReal2D(skinImage, y, x, 0); } } } } // // 欠損領域を補間する // // 引数 // skinImage 肌色抽出画像用IplImage // temp 一時保存用IplImage // void interpolate(IplImage * skinImage, IplImage * temp) { //膨張をITERATIONS回行う cvDilate(skinImage, temp, NULL, ITERATIONS); //収縮をITERATIONS回行う cvErode(temp, skinImage, NULL, ITERATIONS); } // // 最大領域(手領域)の抽出を行う // // 引数 // skinImage 肌色抽出画像用IplImage // label ラベリングした結果 // convexHullImage ConvexHull画像用IplImage // // 戻り値 // 手領域の面積 // int pickupMaxArea(IplImage * skinImage, IplImage * label, IplImage * convexHullImage) { int handarea = 0;// 手領域の面積 for (int x = 0; x skinImage- width; x++) { for (int y = skinImage- height - 1; y = 0; y--) { if (cvGetReal2D(label, y, x) == 1) { // 最大領域だった場合 handarea++; cvSet2D(convexHullImage, y, x, CV_RGB(255, 255, 255)); } else { cvSetReal2D(skinImage, y, x, 0); cvSet2D(convexHullImage, y, x, CV_RGB(0, 0, 0)); } } } return handarea; } // // ConvexHullを生成する // // 引数 // skinImage 肌色抽出画像用IplImage // handarea 手領域の面積(点の数) // handpoint 手領域内の点の座標配列へのポインタ // hull ConvexHullの頂点のhandpointにおけるindex番号へのポインタ // pointMatrix 手領域用行列へのポインタ // hullMatrix ConvexHull用行列へのポインタ // void createConvexHull(IplImage * skinImage, int handarea, CvPoint ** handpoint, int **hull, CvMat * pointMatrix, CvMat * hullMatrix) { int i = 0; // ConvexHullを計算するために必要な行列を生成する *handpoint = (CvPoint *) malloc(sizeof(CvPoint) * handarea); *hull = (int *) malloc(sizeof(int) * handarea); *pointMatrix = cvMat(1, handarea, CV_32SC2, *handpoint); *hullMatrix = cvMat(1, handarea, CV_32SC1, *hull); for (int x = 0; x skinImage- width; x++) { for (int y = 0; y skinImage- height; y++) { if (cvGetReal2D(skinImage, y, x) == 255) { (*handpoint)[i].x = x; (*handpoint)[i].y = y; i++; } } } // ConvexHullを生成する cvConvexHull2(pointMatrix, hullMatrix, CV_CLOCKWISE, 0); } // // ConvexHullを描画する // // 引数 // convexHullImage ConvexHull画像用IplImage // handpoint 手領域内の点の座標配列 // hull ConvexHullの頂点のhandpointにおけるindex番号 // hullcount ConvexHullの頂点の数 // void drawConvexHull(IplImage * convexHullImage, CvPoint * handpoint, int *hull, int hullcount) { CvPoint pt0 = handpoint[hull[hullcount - 1]]; for (int i = 0; i hullcount; i++) { CvPoint pt = handpoint[hull[i]]; cvLine(convexHullImage, pt0, pt, CV_RGB(0, 255, 0)); pt0 = pt; } } // // ConvexHull内の面積を求める // // 引数 // convexHullImage ConvexHull画像用IplImage // handpoint 手領域内の点の座標配列 // hull ConvexHullの頂点のhandpointにおけるindex番号 // hullcount ConvexHullの頂点の数 // // 戻り値 // ConvexHull内の面積 // int calcConvexHullArea(IplImage * convexHullImage, CvPoint * handpoint, int *hull, int hullcount) { // ConvexHullの頂点からなる行列を生成 CvPoint *hullpoint = (CvPoint *) malloc(sizeof(CvPoint) * hullcount); CvMat hMatrix = cvMat(1, hullcount, CV_32SC2, hullpoint); for (int i = 0; i hullcount; i++) { hullpoint[i] = handpoint[hull[i]]; } // ConvexHull内の点の数を数える int hullarea = 0; for (int x = 0; x convexHullImage- width; x++) { for (int y = 0; y convexHullImage- height; y++) { if (cvPointPolygonTest( hMatrix, cvPoint2D32f(x, y), 0) 0) { hullarea++; if (count == 1) cvCircle(frameImage, cvPoint(x, y), 1, cvScalar(0, 0, 0), -1); } } } count = 0; free(hullpoint); return hullarea; } // // ジャンケンの判定を行う // // 引数 // handarea 手領域の面積 // hullarea ConvexHull内の面積 // void decide(int handarea, int hullarea) { double ratio;// ConvexHull内の面積に対する手領域の面積の割合 //割合判定用変数 float rockmax1, rockmin1, scissormax1, scissormin1, papermax1, papermin1; //指の距離用変数 int mater = 0; //ランダム用変数 int ram = random(); printf("%d\n",ram); rockmax1 = rockmax / 100.0; rockmin1 = rockmin / 100.0; scissormax1 = scissormax / 100.0; scissormin1 = scissormin / 100.0; papermax1 = papermax / 100.0; papermin1 = papermin / 100.0; //割合計算 ratio = handarea / (double) hullarea; //指距離計算 if(yubi_count==2){ mater=(int)((ireko[yubi_count-2][0] - ireko[yubi_count-1][0]) + (ireko[yubi_count-2][1] - ireko[yubi_count-1][1])); if(mater 0) mater = mater * (-1); } printf("--------------------------------------------------------------------------------\n"); printf("面積の判定\n"); printf("if((%d = 190000 %d = 19000) (%d = 18000 %d = 110000))\n",hullarea,hullarea,handarea,handarea); if((hullarea = 190000 hullarea = 19000) (handarea = 18000 handarea = 110000)){ printf("指の判定0ならグー、2ならチョキ、5ならパー 現在%d\n",yubi_count); //グーの判定 if ((ratio = rockmin1 ratio = rockmax1) yubi_count == 0 ){ printf("グー\n"); if(syoki_count==syoki_point){ if(janken_type==1) cvShowImage(windowNamejannkenn, J_par ); if(janken_type==2) cvShowImage(windowNamejannkenn, J_tyoki ); if(janken_type==3) cvShowImage(windowNamejannkenn,J_goo); if(janken_type==4){ if(ram =1 ram =2) cvShowImage(windowNamejannkenn,J_goo); if(ram =3 ram =4) cvShowImage(windowNamejannkenn, J_tyoki ); if(ram =5 ram =6) cvShowImage(windowNamejannkenn, J_par ); } syoki_count=0; } //チョキの判定 }else if ( yubi_count == 2 ) { printf("チョキの面積\n"); printf("if((%d = 21000 %d = 110000) (%d = 15000 %d = 75000))\n",hullarea,hullarea,handarea,handarea); if((hullarea = 21000 hullarea = 110000) (handarea = 15000 handarea = 75000)){ printf("チョキの白黒の割合\n"); printf("if(%f = %f %f = %f)\n",ratio,scissormin1,ratio,scissormax1); if(ratio = scissormin1 ratio = scissormax1){ printf("指の距離判定\n"); printf("if(%d 100.0)\n",mater); if(mater 190){ printf("チョキ\n"); if(syoki_count==syoki_point){ if(janken_type==1) cvShowImage(windowNamejannkenn, J_goo ); if(janken_type==2) cvShowImage(windowNamejannkenn, J_par ); if(janken_type==3) cvShowImage(windowNamejannkenn, J_tyoki ); if(janken_type==4){ if(ram =1 ram =2) cvShowImage(windowNamejannkenn,J_goo); if(ram =3 ram =4) cvShowImage(windowNamejannkenn, J_tyoki ); if(ram =5 ram =6) cvShowImage(windowNamejannkenn, J_par ); } syoki_count=0; } } }else printf("数値がおかしい\n"); }else printf("数値がおかしい\n"); //パーの判定 }else if ( yubi_count == 5 ) { printf("パーの面積\n"); printf("if((%d = 43000 %d = 180000) (%d = 28000 %d = 100000))\n",hullarea,hullarea,handarea,handarea); if((hullarea = 43000 hullarea = 180000) (handarea = 28000 handarea = 100000)){ printf("パーの白黒の割合\n"); printf("if(%f = %f %f = %f)\n",ratio,papermin1,ratio,papermax1); if(ratio = papermin1 ratio = papermax1){ printf("パー\n"); if(syoki_count==syoki_point){ if(janken_type==1) cvShowImage(windowNamejannkenn, J_tyoki ); if(janken_type==2) cvShowImage(windowNamejannkenn, J_goo ); if(janken_type==3) cvShowImage(windowNamejannkenn, J_par ); if(janken_type==4){ if(ram =1 ram =2) cvShowImage(windowNamejannkenn,J_goo); else if(ram =3 ram =4) cvShowImage(windowNamejannkenn, J_tyoki ); else if(ram =5 ram =6) cvShowImage(windowNamejannkenn, J_par ); } syoki_count=0; } }else printf("数値がおかしい\n"); }else printf("数値がおかしい\n"); } elseprintf("数値がおかしい\n"); } if(hullarea = 190000){ printf("もう少し離してください\n"); }else if(hullarea = 19000){ printf("もう少し近づけてください\n"); } } void sabun(IplImage * src_img) { // モロフォロジー演算用 IplImage *dst_img_dilate; IplImage *dst_img_erode, *dst_img_erode1; IplImage *dst_img_opening; IplImage *tmp_img; IplConvKernel *element; dst_img_dilate = cvCloneImage(src_img);//拡大 dst_img_erode = cvCloneImage(src_img);//縮小 dst_img_opening = cvCloneImage(src_img);//差分 dst_img_subunn = cvCloneImage(src_img); tmp_img = cvCloneImage(src_img); //構造要素を生成する element = cvCreateStructuringElementEx(9, 9, 4, 4, CV_SHAPE_RECT, NULL); //各種のモルフォロジー演算を実行する cvMorphologyEx(src_img, dst_img_opening, tmp_img, element, CV_MOP_OPEN, 1); cvErode(dst_img_opening, dst_img_erode, element, 5);//縮小を5回繰り返す cvDilate(dst_img_erode, dst_img_dilate, element, 8);//拡大を8回繰り返す cvSub(dst_img_opening, dst_img_dilate, dst_img_subunn);//差分を求める // メモリを解放する cvReleaseImage( dst_img_dilate); cvReleaseImage( dst_img_erode); cvReleaseImage( dst_img_opening); Ellipse(dst_img_subunn); cvReleaseImage( dst_img_subunn); cvReleaseImage( tmp_img); } void Ellipse(IplImage * sabunn_img) { // ellipseの処理用 IplImage *dst_img; IplImage *src_img_gray = 0; IplImage *tmp_img; CvMemStorage *storage = cvCreateMemStorage(0); CvSeq *contours = 0; CvBox2D ellipse; CvTreeNodeIterator it; CvPoint2D32f pt[4]; src_img_gray = cvCloneImage(sabunn_img); tmp_img = cvCreateImage(cvGetSize(sabunn_img), IPL_DEPTH_8U, 1); dst_img = cvCloneImage(sabunn_img); // (2)二値化と輪郭の検出 cvThreshold(src_img_gray, tmp_img, 95, 255, CV_THRESH_BINARY); cvReleaseImage( src_img_gray); cvFindContours(tmp_img, storage, contours, sizeof(CvContour), CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0)); if (contours == NULL) printf("\n"); else{ // (3)ツリーノードイテレータの初期化 cvInitTreeNodeIterator( it, contours, 3); while ((contours = (CvSeq *) cvNextTreeNode( it)) != NULL) { if (contours- total 6) { // (4)楕円のフィッティング ellipse = cvFitEllipse2(contours); ellipse.angle = 90.0 - ellipse.angle; // (5)輪郭,楕円,包含矩形の描画 if (ellipse.size.width ellipse.size.height ellipse.size.height * 2 = ellipse.size.width || ellipse.size.width ellipse.size.height ellipse.size.height = ellipse.size.width * 2) { if (ellipse.size.width * ellipse.size.height 2000) { ireko[yubi_count][0] = ellipse.center.x; ireko[yubi_count][1] = ellipse.center.y; yubi_count++; cvDrawContours(dst_img, contours, CV_RGB(255, 0, 0), CV_RGB(255, 0, 0), 0, 1, CV_AA, cvPoint(0, 0)); cvEllipseBox(dst_img, ellipse, CV_RGB(0, 0, 255), 2); cvBoxPoints(ellipse, pt); cvLine(dst_img, cvPointFrom32f(pt[0]), cvPointFrom32f(pt[1]), CV_RGB(0, 255, 0)); cvLine(dst_img, cvPointFrom32f(pt[1]), cvPointFrom32f(pt[2]), CV_RGB(0, 255, 0)); cvLine(dst_img, cvPointFrom32f(pt[2]), cvPointFrom32f(pt[3]), CV_RGB(0, 255, 0)); cvLine(dst_img, cvPointFrom32f(pt[3]), cvPointFrom32f(pt[0]), CV_RGB(0, 255, 0)); } } } } } if (dst_img- origin == 0) { // 左上が原点の場合 cvFlip(dst_img, dst_img, 0); } // 画像を表示させる cvShowImage(windowNameFit, dst_img); // メモリを解放する cvReleaseImage( dst_img); cvReleaseMemStorage( storage); cvReleaseImage( tmp_img); } void Track(void) { // 肌色を抽出する extractSkinColor(frameImage, hsvImage, skinImage); // 欠損領域を補間する interpolate(skinImage, temp); // ラベリングを行う Label *labeling = createLabeling(); exec(labeling, skinImage, label, true, IGNORE_SIZE); if (getNumOfResultRegions(labeling) 0) { // IGNORE_SIZEよりも大きな領域があった場合 int hullcount;// ConvexHullの頂点の数 CvPoint *handpoint;// 手領域内の点の座標配列 int *hull;// ConvexHullの頂点のhandpointにおけるindex番号 CvMat pointMatrix;// 手領域用行列 CvMat hullMatrix;// ConvexHull用行列 // 最大領域(手領域)の抽出を行う handarea = pickupMaxArea(skinImage, label, convexHullImage); // ConvexHullを生成する createConvexHull(skinImage, handarea, handpoint, hull, pointMatrix, hullMatrix); hullcount = hullMatrix.cols; // ConvexHullを描画する drawConvexHull(convexHullImage, handpoint, hull, hullcount); // ConvexHull内の面積を求める hullarea = calcConvexHullArea(convexHullImage, handpoint, hull, hullcount); //差分を求める sabun(skinImage); // ジャンケンの判定を行う decide(handarea, hullarea); // メモリを解放する free(handpoint); free(hull); } else { // 画像を初期化する cvSetZero(convexHullImage); } releaseLabeling(labeling); if (skinImage- origin == 0) { // 左上が原点の場合 cvFlip(skinImage, skinImage, 0); } if (convexHullImage- origin == 0) { // 左上が原点の場合 cvFlip(convexHullImage, convexHullImage, 0); } } void on_change(int pos) { Track(); } int main(int argc, char **argv) { int key;// キー入力用の変数 CvCapture *capture = NULL;// カメラキャプチャ用の構造体 // カメラを初期化する if ((capture = cvCreateCameraCapture(-1)) == NULL) { // カメラが見つからなかった場合 printf("カメラが見つかりません\n"); return -1; } frameImage = cvQueryFrame(capture);// キャプチャ画像用IplImage hsvImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 3); convexHullImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 3); skinImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1); temp = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1); label = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_16S, 1); // ウィンドウを生成する createWindows(); // 画像を読み込む loadImage(); // トラックバーを生成 cvCreateTrackbar("色相最大値", "Track", hmax, 255, on_change); cvSetTrackbarPos("色相最大値", "Track", 26); cvCreateTrackbar("色相最小値", "Track", hmin, 255, on_change); cvSetTrackbarPos("色相最小値", "Track", 1); cvCreateTrackbar("色彩最大値", "Track", smax, 255, on_change); cvSetTrackbarPos("色彩最大値", "Track", 255); cvCreateTrackbar("色彩最小値", "Track", smin, 255, on_change); cvSetTrackbarPos("色彩最小値", "Track", 51); cvCreateTrackbar("明度最大値", "Track", vmax, 255, on_change); cvSetTrackbarPos("明度最大値", "Track", 255); cvCreateTrackbar("明度最小値", "Track", vmin, 255, on_change); cvSetTrackbarPos("明度最小値", "Track", 0); //Default 20 255 255 0 51 0 //927教室 26 255 255 1 51 0 // ジャンケン判定感度を生成 cvCreateTrackbar("グー最大値", "Track", rockmax, 100, on_change); cvSetTrackbarPos("グー最大値", "Track", 100); cvCreateTrackbar("グー最小値", "Track", rockmin, 100, on_change); cvSetTrackbarPos("グー最小値", "Track", 85); cvCreateTrackbar("チョキ最大値", "Track", scissormax, 100, on_change); cvSetTrackbarPos("チョキ最大値", "Track", 85); cvCreateTrackbar("チョキ最小値", "Track", scissormin, 100, on_change); cvSetTrackbarPos("チョキ最小値", "Track", 60); cvCreateTrackbar("パー最大値", "Track", papermax, 100, on_change); cvSetTrackbarPos("パー最大値", "Track", 75); cvCreateTrackbar("パー最小値", "Track", papermin, 100, on_change); cvSetTrackbarPos("パー最小値", "Track", 50); printf("q 終了 s ストップ w 勝ちモード l 負けモード d 引き分けモード r ランダムモード h ヘルプ\n"); cvShowImage(windowNamejannkenn, J_syoki ); while (1) { frameImage = cvQueryFrame(capture); //初期化カウント if(syoki_count syoki_point) syoki_count++; if(syoki_count == 6){ printf("初期化\n"); cvShowImage(windowNamejannkenn, J_syoki ); } on_change(hmax); // 画像を表示する cvShowImage(windowNameCapture, frameImage); cvShowImage(windowNameSkin, skinImage); cvShowImage(windowNameConvexHull, convexHullImage); yubi_count = 0; // キー入力判定 key = cvWaitKey(1); if (key == q ) { // q キーが押されたらループを抜ける break; } else if (key == c ) { printf("撮影します\n"); sprintf(filename, "%s%d.bmp", path, count); cvSaveImage(filename, skinImage); printf("撮影しました\n"); count++; } else if (key == s janken_type != 0) { printf("動作をやめます\n"); janken_type=0; } else if (key == w janken_type != 1) { printf("こちらが勝つように設定しました\n"); janken_type=1; } else if (key == l janken_type != 2) { printf("こちらが負けるように設定しました\n"); janken_type=2; } else if (key == d janken_type != 3) { printf("あいこになるように設定しました\n"); janken_type=3; } else if (key == r janken_type != 4) { printf("ランダムに設定しました\n"); janken_type=4; } else if (key == h ){ printf("q 終了 s ストップ w 勝ちモード l 負けモード d 引き分けモード r ランダムモード h ヘルプ\n"); } } // キャプチャを解放する cvReleaseCapture( capture); // メモリを解放する cvReleaseImage( hsvImage); cvReleaseImage( skinImage); cvReleaseImage( temp); cvReleaseImage( label); cvReleaseImage( convexHullImage); cvReleaseImage( dst_img_subunn); cvReleaseImage( dst_img); cvReleaseImage( J_goo); cvReleaseImage( J_tyoki); cvReleaseImage( J_par); cvReleaseImage( J_syoki); // ウィンドウを破棄する cvDestroyWindow(windowNamejannkenn); cvDestroyWindow(windowNameCapture); cvDestroyWindow(windowNameSkin); cvDestroyWindow(windowNameConvexHull); cvDestroyWindow(windowNameFit); return 0; }
https://w.atwiki.jp/rundyjack/pages/178.html
キャンペーンaa 開催中 シナリオ 情報まとめページ imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (メインクエスト) imageplugin ref ref 両方(横50) 両方(横500) 高さのみ 横のみ(50) 横のみ(500)
https://w.atwiki.jp/know2005/pages/4.html
https://w.atwiki.jp/nijiame/pages/237.html
ハ バイオレーター 【ヴィラン】 悪魔 スポーンの監視・監督役である悪魔。レイプ魔。 マレボルギアの忠実な下僕だったが、スポーンばかり重用され、その世話役をやらされている事に怒り、スポーン抹殺を図った。返り討ちに遭ったバイオレーターはマレボルギアから罰として人間体から変身できない身体にされる。 悪魔が人間に産ませた子であり、過去には父殺しをしており、兄弟達からは命を狙われている。 変身能力を取り戻してからシモンズの娘に手を出そうとしたが、失敗。首だけの状態にされる。 バーンアウト 【ヒーロー】 本名:ボビー・レーン 男性/地球人/超能力者 所属チーム:GEN13 GEN13初期メンバー。 能力:高熱のプラズマブラストによる火炎放射能力を持ち、飛行も可能。若干のテレパス。 レインメーカーのことが好き。だがブリスから積極的に好意を持たれて、悪い気もしていない。 趣味のギターが恋人の純情少年。 実の父親は近くにいた。 ワイルドストーム社がDC傘下に収まりキャラの版権も移動した。Bios【DC】ハ行も参照の事。 ヒ ピット 【ヒーロー】 男性 宇宙人の生み出した生体兵器。 一言で言うとIMAGE版ハルク。ライターもハルク誌で有名なデール・オーキン。ハルクとクロスオーバーして対戦経験もアリ。 95年からはデールの独立会社から発行される事に。 フ フェアチャイルド 【ヒーロー】 本名:ケイトリン・フェアチャイルド 女性/地球人/メタヒューマン 所属チーム:GEN13 能力:超人的な怪力、銃弾を弾き返す鋼鉄のような肉体、若干のテレパス GEN13チームリーダー、怪力無双で頭脳明晰な才女だが、恋愛はちょっと奥手。 GEN13の看板娘。怪力おっぱい少女。IMAGE社女性キャラの中でも人気は頭抜けており、スポーン以外のIMAGEキャラでフィギュアが輸入販売された数少ないキャラクター。 GEN13は一度彼女を残して他のメンバーは全員爆死した。 ワイルドストーム社がDC傘下に収まりキャラの版権も移動した。Bios【DC】ハ行も参照の事。 フリーフォール 【ヒーロー】本名:ロキシー・スポルティング 女性/地球人/超能力者 能力:テレキネシスにより、敵や物体を空中に持ち上げて、地面や壁に叩きつける事を得意とする。この能力を応用して、自分や仲間達を持ち上げて若干の飛行、空中浮遊が出来る。若干のテレパス。 GEN13初期メンバー。 性格が似ているグランジとは相思相愛。 未成年なのにヘビースモーカー。 あのアダム・ウォーレンの毒牙に掛かって魔法少女になった事で有名(?) フェアチャイルドの事を姉のように慕っていたが、母親違いの本当の姉妹だった。つまり父親は、アレックス・フェアチャイルド。 ワイルドストーム社がDC傘下に収まりキャラの版権も移動した。Bios【DC】ハ行も参照の事。 ヘ ホ
https://w.atwiki.jp/wiki3_aman/pages/5.html